9.3.2.1. Dizi Üzerinde Çevrimsel Kuyruk Uygulaması
Verilen kaba-kodlar uyarınca dizi tabanlı çevrimsel kuyruk yapısı oluşturulması
için, herşeyden önce kuyruğun veri yapısı açık olarak tanımlanmalıdır.
Kodlama işlemi, bu veri yapısına bağlı olarak gerçekleştirilir. Programda
tüm verileri kapsayan bir topluluk bildirimi yapılarak KUYRUK adlı veri
türü oluşturulmuş ve bu türün yapısı üzerinde çalışacak fonksiyonlar verilmiştir.
/* Global bildirimler
*/
#define N 500
typedef struct kuyrukyapisi
{
unsigned int bas;
unsigned int son;
unsigned int var;
int D[N];
} KUYRUK;
/* Başlangıç durumuna getirme
fonksiyonu */
void baslangic(KUYRUK *K)
{
(*K.var)=0;
(*K.bas)=0;
(*K.son)=0;
}
/* Kuyruğa ekleme/koyma
fonksiyonu */
int K_ekle(int veri, KUYRUK *K)
{
if((*K.var) > (N-1)) { /*
dolu mu sınaması */
puts("Kuyruk
Dolu");
return EKES;
}
(*K.son)=((*K.son)+1)%N;
/* ekleme sayacı çevrimsel ayarlanıyor */
(*K.D[(*K.son)])=veri;
(*K.var)++;
return EBAS;
}
/* Kuyruktan çıkartma fonksiyonu
*/
int K_cikart(KUYRUK *K, int *cikarilan)
{
int gcc;
if(K.var<=0)
{ /*
boş mu sınaması */
puts("Kuyruk
Boş");
return EKES;
}
*cikarilan= (*K.D[K.ilk]);
(*K.ilk)=((*K.ilk)+1)%N; /*
alma sayacı çevrimsel ayarlanıyor */
(*K.var)--;
return EBAS;
}
|
|